/**  
 * Copyright © 2017武汉思恒达科技有限公司. All rights reserved.
 * @Title: CodingFactory.java
 * @Prject: Ads
 * @Package: com.loongtek.onyx.corgi.web.adssystem.datacenter.utils
 * @author: int_java_se@163.com
 * @date: 2017年2月8日 下午3:17:02
 */
package com.thinkingstar.iads.common.utils;

import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;


/** 
 * @ClassName: CodingFactory <br/> 
 * @Description: (编码工厂，各种编码加工) 
 * @date: 2017年2月8日 下午3:17:02 <br/> 
 * @author int_java_se@163.com
 * @version  
 * @since JDK 1.7
 */
public class CodingFactory {
	
	private static final Logger LOGGER = Logger.getLogger(CodingFactory.class);
	
	/** ztree的编码加工规则 */
	public static final int ztreeRules = 4;
	
	/** 补码 */
	public static final String complement = "0";
	
	/**
	 * @param head 前置编码 比如0001
	 * @param tail 后置编码 比如1
	 * @param reules 编码长度 比如4 表示长度四位
	 * @return 00010001
	 * @throws Exception 
	 */
	public static String codingFactory(String head ,String tail ,int reules) throws Exception{
		if(tail.length() > reules) throw new Exception();
		for (int i = 0; i < reules; i++) {
			if(tail.length() == reules) break;
			tail = StringUtils.join(complement , tail);
		}
		return StringUtils.join(head , tail);
	}
	
	public static String ztreeCodingFactory(String head , String tail){
		try {
			return codingFactory(head , tail , ztreeRules);
		} catch (Exception e) {
			LOGGER.error(e.getMessage());
		}
		return null;
	}
	
}
